<?php


namespace app\common\enum;

/**
 * 系统公共错误码
 */
class ErrorCodeEnum
{
    // 统一错误码设计方案
    // 统一格式：A-BB-CCC 或 A-BB
    // A:错误级别，如1代表系统级错误，2代表服务级错误；
    // B:项目或模块名称，一般公司不会超过99个项目；
    // C:具体错误编号，自增即可，一个项目999种错误应该够用；

    /**
     * 获取显示状态
     * @param bool $value
     * @return string|string[]
     */
    public static function getErrorCodeDesc($value = true)
    {
        $data = [
            0 => '成功',
            // 系统级通用错误
            100 => '未知错误',
            101 => '服务暂不可用',
            102 => '未知的方法',
            103 => 'IP限制不能请求该资源',
            104 => '接口调用次数已达到设定的上限',
            105 => '无权限访问该数据',
            106 => '来自该refer的请求无访问权限',
            107 => '接口不存在',
            108 => '接口请求方式不支持,请检查是否选择了正确的请求方式',
            109 => '接口访问超时',
            110 => '系统繁忙,任务过多',
            111 => '未知的存储操作错误',
            112 => '获取未授权的字段',
            113 => '数据库操作出错，请重试',
            114 => '数据存储空间已超过设定的上限',
            115 => '访问的应用不存在',
            116 => '指定的对象不存在',
            117 => '缓存失效',
            118 => '系统操作,操作类不存在',

            //系统级接口错误
            10000 => '请求参数无效',
            10001 => 'apiKey无效',
            10002 => '签名参数缺失',
            10003 => '签名参数异常',
            10004 => '签名重复请求',
            10005 => '签名验证失败，请核对签名参数',
            10006 => 'token缺失',
            10007 => 'token无效',
            10008 => 'token过期',
            10009 => '获取未授权字段',
            10010 => '用户不可见',

            //服务级错误 01-用户类 02-文件类 03-配置类 04-消息 05-插件类 06-文件类
            10100 => '用户类错误',
            10200 => '文件类错误',
            10300 => '配置类错误',
            10400 => '消息类错误',
            10500 => '插件类错误',
            10600 => '文件类错误',
            10700 => '微信类错误',
            10800 => '支付类错误',
            10900 => '插件类错误',

            //其他业务类

        ];
        if ($value === true) {
            return $data;
        }
        return $data[$value];
    }
}